<template>
  <div id="aCoursesList" class="bg-fa of">
    <!-- /课程详情 开始 -->

    <section class="container">
      <section class="path-wrap txtOf hLh30">
        <a href="#" class="c-999 fsize14">首页</a>

        \

        <a href="#" class="c-999 fsize14">{{ courseWebVo.subjectLevelOne }}</a>

        \

        <span class="c-333 fsize14">{{ courseWebVo.subjectLevelTwo }}</span>
      </section>

      <div>
        <article class="c-v-pic-wrap" style="height: 357px">
          <section class="p-h-video-box" id="videoPlay">
            <img
              height="357px"
              :src="courseWebVo.cover"
              :alt="courseWebVo.title"
              class="dis c-v-pic"
            />
          </section>
        </article>

        <aside class="c-attr-wrap">
          <section class="ml20 mr15">
            <h2 class="hLh30 txtOf mt15">
              <span class="c-fff fsize24">{{ courseWebVo.title }}</span>
            </h2>

            <section class="c-attr-jg">
              <span class="c-fff">价格：</span>

              <b class="c-yellow" style="font-size: 24px"
                >￥{{ courseWebVo.price }}</b
              >
            </section>

            <section class="c-attr-mt c-attr-undis">
              <span class="c-fff fsize14"
                >主讲： {{ courseWebVo.teacherName }}&nbsp;&nbsp;&nbsp;</span
              >
            </section>

            <section class="c-attr-mt of">
              <span class="ml10 vam">
                <em class="icon18 scIcon"></em>
                <a
                  class="c-fff vam"
                  :class="{ active: isActive }"
                  :title="isActive ? '已收藏' : '收藏'"
                  @click="hitCollect"
                  href="#"
                  >{{ isActive ? "已收藏" : "收藏" }}</a
                >
              </span>
            </section>

            <section
              v-if="isbuy || Number(courseWebVo.price) === 0"
              class="c-attr-mt"
            >
              <a href="#" title="立即观看" class="comm-btn c-btn-3">立即观看</a>
            </section>
            <section v-else class="c-attr-mt">
              <a
                @click="createOrders()"
                href="#"
                title="立即购买"
                class="comm-btn c-btn-3"
                >立即购买</a
              >
            </section>
          </section>
        </aside>

        <aside class="thr-attr-box">
          <ol class="thr-attr-ol clearfix">
            <li>
              <p>&nbsp;</p>

              <aside>
                <span class="c-fff f-fM">购买数</span>

                <br />

                <h6 class="c-fff f-fM mt10">{{ courseWebVo.buyCount }}</h6>
              </aside>
            </li>

            <li>
              <p>&nbsp;</p>

              <aside>
                <span class="c-fff f-fM">课时数</span>

                <br />

                <h6 class="c-fff f-fM mt10">{{ courseWebVo.lessonNum }}</h6>
              </aside>
            </li>

            <li>
              <p>&nbsp;</p>

              <aside>
                <span class="c-fff f-fM">浏览数</span>

                <br />

                <h6 class="c-fff f-fM mt10">{{ courseWebVo.viewCount }}</h6>
              </aside>
            </li>
          </ol>
        </aside>

        <div class="clear"></div>
      </div>

      <!-- /课程封面介绍 -->

      <div class="mt20 c-infor-box">
        <article class="fl col-7">
          <section class="mr30">
            <div class="i-box">
              <div>
                <section id="c-i-tabTitle" class="c-infor-tabTitle c-tab-title">
                  <a name="c-i" class="current" title="课程详情">课程详情</a>
                </section>
              </div>

              <article class="ml10 mr10 pt20">
                <div>
                  <h6 class="c-i-content c-infor-title">
                    <span>课程介绍</span>
                  </h6>

                  <div class="course-txt-body-wrap">
                    <section
                      class="course-txt-body"
                      v-html="courseWebVo.description"
                    ></section>
                  </div>
                </div>

                <!-- /课程介绍 -->

                <div class="mt50">
                  <h6 class="c-g-content c-infor-title">
                    <span>课程大纲</span>
                  </h6>

                  <section class="mt20">
                    <div class="lh-menu-wrap">
                      <menu id="lh-menu" class="lh-menu mt10 mr10">
                        <ul>
                          <!-- 文件目录 -->

                          <li
                            class="lh-menu-stair"
                            v-for="chapter in chapterVideoList"
                            :key="chapter.id"
                          >
                            <a
                              href="javascript: void(0)"
                              :title="chapter.title"
                              class="current-1"
                            >
                              <em class="lh-menu-i-1 icon18 mr10"></em
                              >{{ chapter.title }}
                            </a>

                            <ol class="lh-menu-ol" style="display: block">
                              <li
                                class="lh-menu-second ml30"
                                v-for="video in chapter.children"
                                :key="video.id"
                              >
                                <a
                                  :href="'/player/' + video.videoSourceId"
                                  target="_blank"
                                >
                                  <span class="fr">
                                    <i class="free-icon vam mr10">免费试听</i>
                                  </span>

                                  <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em
                                  >{{ video.title }}
                                </a>
                              </li>
                            </ol>
                          </li>
                        </ul>
                      </menu>
                    </div>
                  </section>
                </div>

                <!-- /课程大纲 -->
              </article>
            </div>
          </section>
        </article>

        <aside class="fl col-3">
          <div class="i-box">
            <div>
              <section class="c-infor-tabTitle c-tab-title">
                <a title href="javascript:void(0)">主讲讲师</a>
              </section>

              <section class="stud-act-list">
                <ul style="height: auto">
                  <li>
                    <div class="u-face">
                      <a href="#">
                        <img
                          :src="courseWebVo.avatar"
                          width="50"
                          height="50"
                          :alt="courseWebVo.teacherName"
                        />
                      </a>
                    </div>

                    <section class="hLh30 txtOf">
                      <a class="c-333 fsize16 fl" href="#">{{
                        courseWebVo.teacherName
                      }}</a>
                    </section>

                    <section class="hLh20 txtOf">
                      <span class="c-999">{{ courseWebVo.intro }}</span>
                    </section>
                  </li>
                </ul>
              </section>
            </div>
          </div>
        </aside>

        <div class="clear"></div>
      </div>

      <!-- 评论 开始-->

      <div class="mt50 commentHtml i-box pl">
        <div>
          <h6 class="c-c-content c-infor-title pl-title" id="i-art-comment">
            <span class="commentTitle">课程评论</span>
          </h6>

          <section class="lh-bj-list pr mt20 replyhtml">
            <ul>
              <li class="unBr">
                <aside class="noter-pic">
                  <img
                    width="50"
                    height="50"
                    class="picImg"
                    v-if="myComment.avatar"
                    :src="myComment.avatar"
                  />
                  <img
                    width="50"
                    height="50"
                    class="picImg"
                    v-else
                    src="~/assets/img/defaultAvatar.png"
                  />
                </aside>

                <div class="of">
                  <section class="n-reply-wrap">
                    <fieldset>
                      <textarea
                        name=""
                        v-model="myComment.content"
                        placeholder="输入您要评论的文字"
                        id="commentContent"
                      ></textarea>
                    </fieldset>

                    <p class="of mt5 tar pl10 pr10">
                      <span class="fl"
                        ><tt
                          class="c-red commentContentmeg"
                          style="display: none"
                        ></tt
                      ></span>

                      <input
                        type="button"
                        @click="commitComment()"
                        value="回复"
                        class="lh-reply-btn"
                      />
                    </p>
                  </section>
                </div>
              </li>
            </ul>
          </section>

          <section class="mt20">
            <section class="question-list lh-bj-list pr">
              <ul class="pr10">
                <li v-for="(comment, index) in commentList" v-bind:key="index">
                  <aside class="noter-pic">
                    <img
                      width="50"
                      height="50"
                      class="picImg"
                      :src="comment.avatar"
                    />
                  </aside>
                  <div class="of">
                    <span class="fl">
                      <font class="fsize12 c-blue">
                        {{ comment.nickname }}</font
                      >
                      <font class="fsize12 c-999 ml5">评论：</font></span
                    >
                  </div>

                  <div class="noter-txt mt5">
                    <p>{{ comment.content }}</p>
                  </div>

                  <div class="of mt5">
                    <span class="fr"
                      ><font class="fsize12 c-999 ml5">{{
                        comment.gmtCreate
                      }}</font></span
                    >
                  </div>
                </li>
              </ul>
            </section>
          </section>
          <!-- 评论 结束-->

          <!-- 公共分页 开始 -->
          <div>
            <div class="paging">
              <!-- undisable这个class是否存在，取决于数据属性hasPrevious -->

              <a
                :class="{ undisable: !pageData.hasPrevious }"
                href="#"
                title="首页"
                @click.prevent="gotoPage(1)"
                >首</a
              >

              <a
                :class="{ undisable: !pageData.hasPrevious }"
                href="#"
                title="前一页"
                @click.prevent="gotoPage(pageData.current - 1)"
                >&lt;</a
              >

              <a
                v-for="page in pageData.pages"
                :key="page"
                :class="{
                  current: pageData.current == page,
                  undisable: pageData.current == page,
                }"
                :title="'第' + page + '页'"
                href="#"
                @click.prevent="gotoPage(page)"
                >{{ page }}</a
              >

              <a
                :class="{ undisable: !pageData.hasNext }"
                href="#"
                title="后一页"
                @click.prevent="gotoPage(pageData.current + 1)"
                >&gt;</a
              >

              <a
                :class="{ undisable: !pageData.hasNext }"
                href="#"
                title="末页"
                @click.prevent="gotoPage(pageData.pages)"
                >末页</a
              >

              <div class="clear" />
            </div>
          </div>

          <!-- 公共分页 结束 -->
        </div>
      </div>
    </section>

    <!-- /课程详情 结束 -->
  </div>
</template>


<script>
import courseApi from "@/api/course/course";
import orderApi from "@/api/order/order";
import commentApi from "@/api/comment/comment";
import cookie from "js-cookie";
export default {
  //异步获取信息 类似于$route.params.id
  asyncData({ params, error }) {
    return {
      courseId: params.id,
    };
  },
  data() {
    return {
      courseWebVo: {},
      chapterVideoList: [],
      isbuy: false,
      isActive: false,
      cFlag: "",
      collectInfo: {
        courseId: "",
        memberId: "",
      },
      //评论提交信息
      myComment: {
        id: null,
        courseId: "",
        teacherId: "",
        memberId: "",
        nickname: "",
        avatar: "",
        content: "",
      },
      //评论集合用于显示
      commentList: [],
      //分页显示信息
      pageData: {},
      userInfo: {},
    };
  },
  created() {
    this.initCourseInfo();
    this.getLoginUserInfo();
    this.gotoPage(1);
  },
  mounted() {
    this.initShouCang();
  },
  methods: {
    initShouCang() {
      const memberId = this.myComment.memberId;
      if (memberId) {
        courseApi.isCollect(this.courseId, memberId).then((res) => {
          this.cFlag = res.data.data.isCollect;
          if (this.cFlag) {
            this.isActive = true;
          } else {
            this.isActive = false;
          }
          return this.cFlag;
        });
      } else {
      }
    },
    // 收藏
    hitCollect() {
      const memberId = this.myComment.memberId;
      if (!memberId) {
        //未登录
        this.$notify({
          title: "您暂无登录信息",
          message: "请登录后操作",
          offset: 100,
        });
      } else {
        courseApi.isCollect(this.courseId, memberId).then((res) => {
          if (res.data.data.isCollect) {
            //已收藏
            courseApi.cancelCollect(this.courseId, memberId).then((res) => {
              if ((res.data.code = 20000)) {
                this.$message({
                  message: "取消收藏",
                  type: "success",
                });
                this.isActive = false;
              } else {
                this.$message({
                  message: "取消收藏失败",
                  type: "error",
                });
              }
            });
          } else {
            //未收藏
            this.collectInfo.courseId = this.courseId;
            this.collectInfo.memberId = memberId;
            courseApi.hitCollect(this.collectInfo).then((res) => {
              if ((res.data.code = 20000)) {
                this.$message({
                  message: "收藏成功",
                  type: "success",
                });
                this.isActive = true;
              } else {
                this.$message({
                  message: "收藏失败",
                  type: "error",
                });
              }
            });
          }
        });
      }
    },
    //------ 评论 -------
    //分页切换的方法  参数是页码数
    gotoPage(page) {
      commentApi.getFrontComment(page, 4, this.$route.params.id).then((res) => {
        this.pageData = res.data.data;
        this.commentList = this.pageData.records;
      });
    },
    //获取登录用户信息
    getLoginUserInfo() {
      var userStr = cookie.get("guli_ucenter");
      //把字符串转换json对象
      if (userStr) {
        this.userInfo = JSON.parse(userStr);
        this.myComment.memberId = this.userInfo.id;
        this.myComment.avatar = this.userInfo.avatar;
        this.myComment.nickname = this.userInfo.nickname;
      } else {
        console.log("未登录。。。");
      }
    },
    commitComment() {
      this.myComment.courseId = this.courseWebVo.id;
      this.myComment.teacherId = this.courseWebVo.teacherId;
      if (this.myComment.nickname) {
        commentApi.commitComment(this.myComment).then((res) => {
          if (res.data.code == 20000) {
            this.myComment.content = "";
            this.$message({
              message: "评论成功",
              type: "success",
            });
            this.gotoPage(1);
          }
        });
      } else {
        //未登录
        this.$notify({
          title: "您暂无登录信息",
          message: "请登录后操作",
          offset: 100,
        });
        this.$router.push({
          path: "/login",
        });
      }
    },
    // ------ 课程 ---------
    initCourseInfo() {
      courseApi.getCourseInfo(this.courseId).then((res) => {
        if (res.data.code == 20000) {
          this.courseWebVo = res.data.data.courseWebVo;
          this.chapterVideoList = res.data.data.chapterVideoList;
          this.isbuy = res.data.data.isbuy;
        }
      });
    },
    //生成订单
    createOrders() {
      if (this.myComment.memberId) {
        orderApi.createOrders(this.courseId).then((res) => {
          //获取返回订单号
          //生成订单之后，跳转订单显示页面
          this.$router.push({
            path: "/orders/" + res.data.data.orderNo,
          });
        });
      } else {
        //未登录
        this.$notify({
          title: "您暂无登录信息",
          message: "请登录后操作",
          offset: 100,
        });
      }
    },
  },
};
</script>


<style>
.pl {
  margin-top: 0%;
  width: 69.75%;
}
.pl-title {
  margin-top: 10px;
}
.active {
  color: red;
}
</style>

